Memory corruption occurs when a computer program, such as an application, unintentionally modifies a location in memory. Unintentional modification of memory may occur due to using uninitialized memory, using memory beyond the allocated amount, through faulty heap memory management, stale pointers, buffer overflows, or any other cause. When unintentional modification of memory occurs, any later user or access of that memory location is likely to lead to an error or program crash. Oftentimes, determining the specific cause of the memory corruption is challenging if not impossible. If not properly dealt with, a corrupted portion of memory may continue to cause errors and crash programs for an extended period of time. Improved methods of dealing with memory corruption are needed.
The approaches described in this section are approaches that could be pursued, but not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated, it should not be assumed that any of the approaches described in this section qualify as prior art merely by virtue of their inclusion in this section.